"r"
, "w"
, "a"
সি প্রোগ্রামিং ভাষায় ফাইল পয়েন্টার এবং ফাইল মোড গুরুত্বপূর্ণ ভূমিকা পালন করে ফাইল ইনপুট এবং আউটপুট অপারেশন পরিচালনার ক্ষেত্রে। ফাইল পয়েন্টার একটি বিশেষ ধরনের পয়েন্টার যা একটি ফাইলের অবস্থান নির্দেশ করে এবং ফাইল মোডগুলো নির্ধারণ করে কিভাবে ফাইলটি খুলবে এবং কিভাবে তার সাথে কাজ করবে।
ফাইল পয়েন্টার হলো একটি পয়েন্টার যা ফাইলের অবস্থান বা পয়েন্টারের মাধ্যমে ফাইলের মধ্যে ডেটা অ্যাক্সেস করতে ব্যবহৃত হয়। যখন একটি ফাইল খোলা হয়, তখন এটি একটি পয়েন্টার প্রদান করে যা ফাইলের প্রথম অক্ষরের অবস্থানকে নির্দেশ করে।
FILE
টাইপের ফাইল পয়েন্টার ব্যবহার করে ফাইলের সাথে কাজ করা হয়। এটি stdio.h
হেডার ফাইলের অংশ।
FILE *file; // ফাইল পয়েন্টার ডিক্লেয়ার করা
file = fopen("example.txt", "r"); // ফাইল খোলা
এখানে, file
একটি ফাইল পয়েন্টার যা example.txt
ফাইলকে নির্দেশ করছে। ফাইল মোড "r"
(পড়ার জন্য) ব্যবহার করা হয়েছে।
"r"
, "w"
, "a"
ফাইল মোডগুলি ফাইল খুলতে ব্যবহৃত হয় এবং ফাইলের সাথে কি ধরনের অপারেশন করা যাবে তা নির্ধারণ করে। সবচেয়ে প্রচলিত তিনটি ফাইল মোড হলো "r"
, "w"
, এবং "a"
।
"r"
ফাইল মোডটি শুধুমাত্র পড়ার জন্য ফাইল খুলতে ব্যবহৃত হয়। এই মোডে, ফাইলটি যদি থাকে তবে সেটি খোলা হয় এবং আপনি ফাইলটি পড়তে পারবেন। কিন্তু যদি ফাইলটি না থাকে, তবে fopen()
ফাংশন NULL
রিটার্ন করবে।
FILE *fopen(const char *filename, "r");
#include <stdio.h>
int main() {
FILE *file = fopen("example.txt", "r");
if (file == NULL) {
printf("File not found\n");
return 1;
}
// ফাইল পড়া
char ch;
while ((ch = fgetc(file)) != EOF) {
printf("%c", ch);
}
fclose(file); // ফাইল বন্ধ
return 0;
}
এখানে, "r"
মোডে ফাইলটি খোলা হয়েছে এবং fgetc()
ফাংশন দ্বারা ফাইল থেকে ক্যারেক্টার পড়া হয়েছে।
"w"
ফাইল মোডটি লেখার জন্য ব্যবহৃত হয়। এই মোডে, যদি ফাইলটি আগে থেকে বিদ্যমান থাকে, তবে এটি মুছে দেয় এবং নতুনভাবে লিখতে শুরু হয়। যদি ফাইলটি না থাকে, তবে একটি নতুন ফাইল তৈরি করা হয়।
FILE *fopen(const char *filename, "w");
#include <stdio.h>
int main() {
FILE *file = fopen("example.txt", "w");
if (file == NULL) {
printf("File could not be opened\n");
return 1;
}
// ফাইলে লেখা
fprintf(file, "Hello, World!\n");
fclose(file); // ফাইল বন্ধ
return 0;
}
এখানে, "w"
মোডে ফাইলটি খোলা হয়েছে এবং fprintf()
ফাংশন ব্যবহার করে ফাইলে লেখা হয়েছে।
"a"
ফাইল মোডটি অ্যাপেন্ড (অর্থাৎ ফাইলের শেষে নতুন ডেটা যোগ করা) করতে ব্যবহৃত হয়। এই মোডে, যদি ফাইলটি আগে থেকেই থাকে, তবে নতুন লেখা ফাইলের শেষে যোগ করা হয়। এবং যদি ফাইলটি না থাকে, তবে একটি নতুন ফাইল তৈরি হয়।
FILE *fopen(const char *filename, "a");
#include <stdio.h>
int main() {
FILE *file = fopen("example.txt", "a");
if (file == NULL) {
printf("File could not be opened\n");
return 1;
}
// ফাইলে যোগ করা
fprintf(file, "Appending a new line to the file.\n");
fclose(file); // ফাইল বন্ধ
return 0;
}
এখানে, "a"
মোডে ফাইলটি খোলা হয়েছে এবং fprintf()
ফাংশন ব্যবহার করে ফাইলে নতুন লাইন যোগ করা হয়েছে। পুরনো ডেটা অপরিবর্তিত থাকে।
ফাইল মোড | বর্ণনা | ব্যবহার উদাহরণ |
---|---|---|
"r" | শুধুমাত্র ফাইল পড়ার জন্য। ফাইলটি যদি না থাকে, তবে NULL রিটার্ন করবে। | fopen("file.txt", "r"); |
"w" | লেখার জন্য ফাইল খোলবে। ফাইলটি আগে থেকে থাকলে মুছে ফেলা হবে এবং নতুন করে লেখা হবে। | fopen("file.txt", "w"); |
"a" | ফাইলের শেষে ডেটা যোগ করতে ব্যবহৃত হয়। ফাইলটি না থাকলে একটি নতুন ফাইল তৈরি হবে। | fopen("file.txt", "a"); |
"r"
: ফাইলটি পড়তে ব্যবহৃত হয়, তবে ফাইলটি যদি না থাকে, তাহলে এটি NULL
রিটার্ন করবে।"w"
: লেখার জন্য ফাইল খোলে এবং ফাইলটি মুছে দেয় (যদি থাকে)।"a"
: ফাইলের শেষে ডেটা যোগ করার জন্য ব্যবহৃত হয় এবং ফাইলের পূর্বের ডেটা অপরিবর্তিত থাকে।ফাইল মোডের মাধ্যমে আপনি ফাইলের সাথে কী ধরনের অপারেশন করতে চান তা নির্ধারণ করতে পারবেন।
common.read_more